package com.pap.msg.message.service;

import com.pap.msg.dto.MsgContentUserDetailsDTO;
import com.pap.msg.message.entity.MsgInfo;
import com.pap.obj.vo.logineduser.LoginedUserVO;

import java.util.List;
import java.util.Map;

public interface IMsgInfoService {

    int deleteByPrimaryKey(String id);

    int selectCountByMap(Map<Object, Object> map);

    List<MsgInfo> selectListByMap(Map<Object, Object> map);

    int insert(MsgInfo record);

    int insertSelective(MsgInfo record);

    MsgInfo selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(MsgInfo record);

    int updateByPrimaryKey(MsgInfo record);

    // alexgaoyh added

    /**
     * 从消息内容实体表中，获取到未被同步的系统消息，插入到当前用户的信息表中
     * Tips: 某用户登录之后，开始读取系统消息，并且维护出来一套最新的系统消息关联数据
     * @param userReceiverId
     * @param loginedUserVO 当前登录用户
     * @return
     */
    String createSysMsgFromMsgContent(String userReceiverId, LoginedUserVO loginedUserVO);

    /**
     * 将消息实体编号，发送给指定的用户集合中(默认发送者为系统消息)
     * @param msgContentUserDetailsDTO
     * @param loginedUserVO
     */
    void createMsgInfoByMsgContentUserIds(MsgContentUserDetailsDTO msgContentUserDetailsDTO, LoginedUserVO loginedUserVO);
}
